// pages/reminders/reminders.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    loading: true,
    medicationReminders: [],
    checkupReminders: []
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    // 页面加载时获取提醒数据
    this.loadReminders();
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    // 每次页面显示时刷新数据
    this.loadReminders();
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  },

  loadReminders: function() {
    const token = wx.getStorageSync('token');
    if (!token) {
      wx.redirectTo({
        url: '/pages/login/login'
      });
      return;
    }
    
    this.setData({ loading: true });
    
    // 获取提醒数据
    wx.request({
      url: 'http://localhost:3000/api/reminders',
      method: 'GET',
      header: {
        'Authorization': `Bearer ${token}`
      },
      success: (res) => {
        if (res.data.success) {
          const allReminders = res.data.data.reminders || [];
          console.log('获取到提醒数据:', allReminders);
          
          // 分类处理提醒数据
          const medicationReminders = allReminders.filter(item => item.type === 'medication');
          const checkupReminders = allReminders.filter(item => item.type === 'checkup');
          
          this.setData({
            medicationReminders,
            checkupReminders,
            loading: false
          });
        } else {
          console.error('获取提醒数据失败:', res.data.message);
          this.setData({ loading: false });
          wx.showToast({
            title: res.data.message || '获取提醒数据失败',
            icon: 'none'
          });
        }
      },
      fail: (err) => {
        console.error('请求失败:', err);
        this.setData({ loading: false });
        wx.showToast({
          title: '网络错误，请稍后重试',
          icon: 'none'
        });
      }
    });
  },

  addReminder: function() {
    wx.navigateTo({
      url: '/pages/reminders/add/add'
    });
  },

  editReminder: function(e) {
    const id = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: `/pages/reminders/edit/edit?id=${id}`
    });
  },

  deleteReminder: function(e) {
    const id = e.currentTarget.dataset.id;
    
    wx.showModal({
      title: '确认删除',
      content: '确定要删除这个提醒吗？',
      success: (res) => {
        if (res.confirm) {
          this.performDelete(id);
        }
      }
    });
  },

  performDelete: function(id) {
    const token = wx.getStorageSync('token');
    if (!token) return;
    
    wx.showLoading({
      title: '删除中...',
    });
    
    wx.request({
      url: `http://localhost:3000/api/reminders/${id}`,
      method: 'DELETE',
      header: {
        'Authorization': `Bearer ${token}`
      },
      success: (res) => {
        wx.hideLoading();
        
        if (res.data.success) {
          wx.showToast({
            title: '删除成功',
            icon: 'success'
          });
          
          // 重新加载数据
          this.loadReminders();
        } else {
          console.error('删除提醒失败:', res.data.message);
          wx.showToast({
            title: res.data.message || '删除失败',
            icon: 'none'
          });
        }
      },
      fail: (err) => {
        wx.hideLoading();
        console.error('请求失败:', err);
        wx.showToast({
          title: '网络错误，请稍后重试',
          icon: 'none'
        });
      }
    });
  },

  toggleReminder: function(e) {
    const id = e.currentTarget.dataset.id;
    const isActive = e.detail.value;
    const token = wx.getStorageSync('token');
    
    if (!token) return;
    
    wx.request({
      url: `http://localhost:3000/api/reminders/${id}`,
      method: 'PATCH',
      header: {
        'Authorization': `Bearer ${token}`,
        'Content-Type': 'application/json'
      },
      data: {
        status: isActive ? 'active' : 'paused'
      },
      success: (res) => {
        if (!res.data.success) {
          console.error('更新提醒状态失败:', res.data.message);
          wx.showToast({
            title: res.data.message || '更新状态失败',
            icon: 'none'
          });
          
          // 如果更新失败，重新加载数据恢复原状态
          this.loadReminders();
        }
      },
      fail: (err) => {
        console.error('请求失败:', err);
        wx.showToast({
          title: '网络错误，请稍后重试',
          icon: 'none'
        });
        
        // 如果请求失败，重新加载数据恢复原状态
        this.loadReminders();
      }
    });
  }
})